#ifndef TEXTUREMANAGER_H_INCLUDED
#define TEXTUREMANAGER_H_INCLUDED
#include <map>
#include <assert.h>
#include "Singleton.h"
#include <string>
#include "Texture.h"

class TextureManager :public Uncopyable
{
private:
	friend class Singleton<TextureManager>;
	TextureManager();

public:
	~TextureManager();
	void LoadTexture(const std::string &FilePath, const std::string &Tag);
	void RemoveTexure(const std::string& Tag);
	void GetTexture(const std::string& Tag);
	void UnBind();
	void EnableSpec();
	void DisableSpec();
	int ReturnID(std::string Tag);

private:
	std::map<std::string, Texture> TheTextureMap;
};
typedef Singleton<TextureManager> TheTextureManager;

#endif